#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>
//exec系列函数用例

//execl:使用可变参数列表来指定新程序的路径和参数
void execl_test(){
    execl("/usr/bin/ls","ls","-a","-l",NULL);
}
//execv:使用字符串数组来指定新程序的路径和参数。
void execv_test(){
    char *args[] = {"ls", "-l", NULL};
    execv("/usr/bin/ls",args);
}
//execle:类似于 execl，但允许指定新的环境变量,但原有的环境变量将被全部替代
void execle_test(){
    char* env[] = {"PATH=/usr/bin:/bin","USER=example",NULL};
    execle("/usr/bin/env","env",NULL,env);
}
//execlp和execvp类似于 execl 和 execv，但会在环境变量 PATH 中搜索可执行文件，无需指定完整路径。
//这里以execlp为例
void execlp_test(){
    execlp("ls","ls","-a","-l",NULL);
}

int main(){
    printf("程序开始运行\n");
    //execl_test();
    //binexecv_test();
    //execle_test();
    execlp_test();
    printf("程序运行结束\n");
    return 0;
}
